﻿using System.Configuration;

namespace netaddICTs.Umb.ProtectedMedia.Business.Configuration {

    public class Aliases : ConfigurationElement {

        internal const string FileAliasPropertyName = "umbracoFile";

        [ConfigurationProperty(FileAliasPropertyName, IsRequired = true, IsKey = false, IsDefaultCollection = false)]
        public Alias FileAlias{
            get { return (Alias) base[FileAliasPropertyName]; }
            set { base[FileAliasPropertyName] = value; }
        }

        internal const string InternalFileAliasPropertyName = "internalFile";

        [ConfigurationProperty(InternalFileAliasPropertyName, IsRequired = true, IsKey = false, IsDefaultCollection = false)]
        public Alias InternalFileAlias
        {
            get { return (Alias)base[InternalFileAliasPropertyName]; }
            set { base[InternalFileAliasPropertyName] = value; }
        }

        internal const string InternalDownloadLinkAliasPropertyName = "internalDownloadLink";

        [ConfigurationProperty(InternalDownloadLinkAliasPropertyName, IsRequired = true, IsKey = false, IsDefaultCollection = false)]
        public Alias InternalDownloadLinkAlias{
            get { return (Alias) base[InternalDownloadLinkAliasPropertyName]; }
            set { base[InternalDownloadLinkAliasPropertyName] = value; }
        }

        internal const string FileExtensionPropertyName = "umbracoFileExtension";

        [ConfigurationProperty(FileExtensionPropertyName, IsRequired = true, IsKey = false, IsDefaultCollection = false)]
        public Alias FileExtensionAlias{
            get { return (Alias) base[FileExtensionPropertyName]; }
            set { base[FileExtensionPropertyName] = value; }
        }

        internal const string FileSizeAliasPropertyName = "umbracoFileSize";

        [ConfigurationProperty(FileSizeAliasPropertyName, IsRequired = true, IsKey = false, IsDefaultCollection = false)]
        public Alias FileSizeAlias{
            get { return (Alias) base[FileSizeAliasPropertyName]; }
            set { base[FileSizeAliasPropertyName] = value; }
        }

        internal const string ProtectedFilePropertyName = "protectedFile";

        [ConfigurationProperty(ProtectedFilePropertyName, IsRequired = true, IsKey = false, IsDefaultCollection = false)]
        public Alias ProtectedFileAlias{
            get { return (Alias) base[ProtectedFilePropertyName]; }
            set { base[ProtectedFilePropertyName] = value; }
        }

        internal const string ProtectedFolderPropertyName = "protectedFolder";

        [ConfigurationProperty(ProtectedFolderPropertyName, IsRequired = true, IsKey = false, IsDefaultCollection = false)]
        public Alias ProtectedFolderAlias{
            get { return (Alias) base[ProtectedFolderPropertyName]; }
            set { base[ProtectedFolderPropertyName] = value; }
        }

        internal const string PermissionPropertyName = "permission";

        [ConfigurationProperty(PermissionPropertyName, IsRequired = true, IsKey = false, IsDefaultCollection = false)]
        public Alias PermissionAlias{
            get { return (Alias) base[PermissionPropertyName]; }
            set { base[PermissionPropertyName] = value; }
        }
    }
}